#include <stdio.h>
#include <setjmp.h>

jmp_buf env;

void func(int arg) {
    printf("func: arg = %d\n", arg);
    longjmp(env, ++arg);
}

int main() {
    int ret = setjmp(env);
    if (ret == 0) 
        func(ret);
    else if (ret == 1) 
        func(ret);
    else if (ret == 2) 
        func(ret);
    else 
        printf("main: ret = %d\n", ret);

    return 0;
}